package com.zhitan.ems.app.iot.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhitan.ems.common.annotation.Excel;
import com.zhitan.ems.framework.core.mp.base.BaseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 设备属性
 * 
 * @author zhitan
 * 
 * @date 2025-09-19 22:15:46
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("iot_device_property")
public class DevicePropertyEntity extends BaseEntity {
	private static final long serialVersionUID = 1L;
	/**
	 * 
	 */
	@TableId
	@Excel(name = "ID")
	private Long id;
	/**
	 * 类型：0 硬件属性 1 数据属性
	 */
	@ApiModelProperty("类型：0 硬件属性 1 数据属性")
	@Excel(name = "类型：0 硬件属性 1 数据属性")
	private Integer kind;
	/**
	 * 关联类型ID
	 */
	@ApiModelProperty("关联类型ID")
	@Excel(name = "关联类型ID")
	private Long typeId;
	@Excel(name = "名称")
	private String name;
	/**
	 * 编码
	 */
	@ApiModelProperty("系统编码")
	@Excel(name = "编码")
	private String dataCode;
	/**
	 * 数据类型：0 字符串 1 integer 2 float 3 boolean 10 date
	 */
	@ApiModelProperty("数据类型：0  字符串 1 integer  2 float 3 boolean 10 date")
	@Excel(name = "数据类型：0  字符串 1 integer  2 float 3 boolean 10 date")
	private Integer dataType;
	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date createAt;
	/**
	 * 更新时间
	 */
	@ApiModelProperty("更新时间")
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date updateAt;
	@ApiModelProperty("显示表单类型")
	private Integer dataFormType;
	@ApiModelProperty("默认内容")
	@Excel(name = "默认内容")
	private String dataFormContent;
	
	@ApiModelProperty("infludb_code 实时库对应编码")
	private String dataFormCode;
	@ApiModelProperty("infludb_code value")
	@TableField(exist = false)
	private Object dataFormCodeValue;
	@ApiModelProperty("infludb_code时间")
	@TableField(exist = false)
	private Date dataFormTime;
	@ApiModelProperty("icon")
	private String dataIcon;
	@ApiModelProperty("数字单位")
	private String dataDw;
	@ApiModelProperty("放大倍数")
	private BigDecimal dataMultiple;
	
	@ApiModelProperty("属性分组ID")
	private Long groupId;
	@ApiModelProperty("属性分组Code")
	@Excel(name = "属性分组Code")
	private String groupCode;
	@ApiModelProperty("groupName")
	private String groupName;

	
	@ApiModelProperty("统计类型:0 默认不统计 1 数字统计 2 差额数据统计")
	private Integer statType;
}